#ifndef ACTION_H_
#define ACTION_H_

#include "Drawable.h"

/*!
 * \file Action.h
 * \brief Classe abstraite permettant d'interagir avec des objets Drawable
 * \author Jalal Chaabane
 * \version 1.0
 */

/*! \namespace JDL
 * Espace de nommage regroupant les différentes classe de la lib
 */

namespace JDL
{
  /*! \class Action
   * \brief Class abstraite permettant d'intéragir avec des objet drawable
   *        poue créer ses propre Action il faut hériter de celle ci et spécifier l'action
   *        dans la methode Do
   */
  class Action
  {
  public:
    /*!
     * \brief Construteur
     */
    Action(Drawable *obj);
    /*!
     * \param obj : Objet avec lequel on veut intéragir
     */
    /*!
     * \brief Desctructeur
     */
    virtual ~Action();
    /*!
     * \brief Execute l'action
     */
    virtual void	Do() = 0;

  protected:
    Drawable	*_obj;
  };
}

#endif
